//package com.shanwen.shopping.activity;
//
//import android.app.Activity;
//import android.content.Intent;
//import android.graphics.Color;
//import android.support.v7.widget.LinearLayoutManager;
//import android.support.v7.widget.RecyclerView;
//import android.text.TextUtils;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.webkit.WebSettings;
//import android.webkit.WebView;
//import android.widget.ImageView;
//import android.widget.LinearLayout;
//import android.widget.TextView;
//
//import com.alibaba.fastjson.JSON;
//import com.classic.adapter.BaseAdapterHelper;
//import com.classic.adapter.CommonRecyclerAdapter;
//import com.classic.core.log.Logger;
//import com.classic.core.utils.DataUtil;
//import com.classic.okhttp.base.OkHttpUtils;
//import com.shanwen.shopping.R;
//import com.shanwen.shopping.consts.Consts;
//import com.shanwen.shopping.dao.ShoppingCartHelper;
//import com.shanwen.shopping.dao.ShoppingCartItem;
//import com.shanwen.shopping.entity.GoodsDetail;
//import com.shanwen.shopping.entity.GoodsInfo;
//import com.shanwen.shopping.entity.SkuProp;
//import com.shanwen.shopping.entity.SkuValue;
//import com.shanwen.shopping.http.ActionHelp;
//import com.shanwen.shopping.http.ObjectCallback;
//import com.shanwen.shopping.imageload.ImageLoadByPicasso;
//import com.shanwen.shopping.pay.PayUtil;
//import com.shanwen.shopping.utils.PicassoUtil;
//import com.shanwen.shopping.utils.Utils;
//import com.shanwen.shopping.view.QuantityView;
//import com.zhy.view.flowlayout.FlowLayout;
//import com.zhy.view.flowlayout.TagAdapter;
//import com.zhy.view.flowlayout.TagFlowLayout;
//
//import org.json.JSONArray;
//import org.json.JSONObject;
//import org.simple.eventbus.Subscriber;
//import org.simple.eventbus.ThreadMode;
//
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.HashMap;
//import java.util.Iterator;
//import java.util.List;
//import java.util.Locale;
//import java.util.Set;
//
//import butterknife.BindView;
//import butterknife.OnClick;
//
//public class GoodsDetailsActivity extends AppBaseActivity {
//    private static final String PARAMS_GOODS_INFO = "GoodsInfo";
//    @BindView(R.id.goods_details_cover)
//    ImageView ivCover;
//    @BindView(R.id.goods_details_cover_rv)
//    RecyclerView rvCover;
//    @BindView(R.id.goods_details_intro)
//    TextView tvIntro;
//    @BindView(R.id.goods_details_price)
//    TextView tvPrice;
//    @BindView(R.id.goods_details_set_meal_tv)
//    TextView tvSetMeal;
//    @BindView(R.id.goods_details_flowlayout)
//    TagFlowLayout flowlayout;
//    //    @BindView(R.id.goods_details_number_tv)
////    TextView tvNumber;
//    @BindView(R.id.goods_details_quantity_view)
//    QuantityView quantityView;
//    @BindView(R.id.goods_details_inventory_tv)
//    TextView tvInventory;
//    @BindView(R.id.goods_details_number_layout)
//    LinearLayout numberLayout;
//    @BindView(R.id.goods_details_buy_tv)
//    TextView tvBuy;
//    @BindView(R.id.goods_details_add_tv)
//    TextView tvAdd;
//    @BindView(R.id.goods_details_webview)
//    WebView webView;
//    @BindView(R.id.ivGoodsBack)
//    ImageView ivGoodsBack;
//    @BindView(R.id.ivGoodsChart)
//    ImageView ivGoodsChart;
//    @BindView(R.id.ivGoodsTop)
//    ImageView ivGoodsTop;
//    private GoodsInfo goodsInfo;
//    private GoodsDetail goodsDetail;
//    private boolean isHasSku = true;
//    private boolean isHasStock = true;
//
//
//    public static void start(Activity activity, GoodsInfo goodsInfo) {
//        if (null != activity && null != goodsInfo) {
//            Intent intent = new Intent(activity, GoodsDetailsActivity.class);
//            intent.putExtra(PARAMS_GOODS_INFO, goodsInfo);
//            activity.startActivity(intent);
//        }
//    }
//
//    @Override
//    public int getLayoutResId() {
//        return R.layout.activity_goods_details;
//    }
//
//    @Override
//    public void initView() {
//        super.initView();
//
//        setTitle("商品详情");
//        setBackEnabled(true);
//        setShoppingCartEnabled(false);
//
//        if (getIntent().hasExtra(PARAMS_GOODS_INFO)) {
//            goodsInfo = (GoodsInfo) getIntent().getSerializableExtra(PARAMS_GOODS_INFO);
//        }
//        if (null == goodsInfo) {
//            finish();
//            return;
//        }
//        setupView();
//        initWebView();
//        getDetailsInfo();
//    }
//
//    private int number = 1;
//
//    private void setupView() {
//        PicassoUtil.load(activity, goodsInfo.getCoverUrl(), ivCover);
//        tvIntro.setText(goodsInfo.getTitle());
//        refreshPriceAndNumber(goodsInfo.getSalePrice(), 0);
//        Utils.setQuantityClick(activity, quantityView);
//        quantityView.setOnQuantityChangeListener(new QuantityView.OnQuantityChangeListener() {
//            @Override
//            public void onQuantityChanged(int oldQuantity, int newQuantity, boolean programmatically) {
//                number = newQuantity;
//            }
//
//            @Override
//            public void onLimitReached() {
//
//            }
//        });
//    }
//
//    /**
//     * 刷新单价/库存数量
//     *
//     * @param price  单价,分
//     * @param number 数量
//     */
//    private void refreshPriceAndNumber(long price, int number) {
//        tvPrice.setText(String.format("%s", Utils.formatPrice(price)));
//        tvInventory.setText(String.format(Locale.CHINA, "库存%s件", number));
//        if (number > 0) {
//            quantityView.setMaxQuantity(number);
//        }
//    }
//
//    private void initWebView() {
//        webView.requestFocusFromTouch();
//        webView.requestFocus();
//        webView.getSettings().setJavaScriptEnabled(true);
//        webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
//        webView.getSettings().setLoadWithOverviewMode(true);
//        webView.getSettings().setUseWideViewPort(true);//适应屏幕
//        webView.getSettings().setSupportZoom(false);//缩放
//        // 让网页自适应屏幕宽度
//        webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
//        webView.setHorizontalScrollBarEnabled(false);
//        webView.setVerticalScrollBarEnabled(false);
//        // 设置缓存
////        webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
//
//        if (!TextUtils.isEmpty(goodsInfo.getDetailUrl())) {
//            webView.loadUrl(goodsInfo.getDetailUrl());
//        }
//    }
//
//    @OnClick({R.id.goods_details_buy_tv, R.id.goods_details_add_tv,R.id.ivGoodsBack,R.id.ivGoodsChart,R.id.ivGoodsTop})
//    public void onClick(View view) {
//        switch (view.getId()) {
//            case R.id.goods_details_buy_tv:
//                pay();
//                break;
//            case R.id.goods_details_add_tv:
//                addShoppingCart();
//                break;
//            case R.id.ivGoodsBack:
//                finish();
//                break;
//            case R.id.ivGoodsChart:
//                startActivity(activity,ShoppingCartActivity.class);
//                break;
//            case R.id.ivGoodsTop:
//                webView.postDelayed(new Runnable() {
//                    @Override
//                    public void run() {
//                        webView.scrollTo(0,0);
//                    }
//                }, 100);
//                break;
//        }
//    }
//
//    private String selectSkuPropName;
//    private String selectSkuPropValue;
//    private long selectSkuId;
//    private long selectPrice;
//    private List<String> values;
//
//    private void initSkuProp() {
//        /*final List<String> */
//        values = new ArrayList<>();
//        //分为有sku属性和没有sku属性
//        try {
//            if (goodsDetail.skuProps.size() == 0) {
//                tvSetMeal.setVisibility(View.GONE);
//                flowlayout.setVisibility(View.GONE);
//                isHasSku = false;
//                goodsDetail.goodsId = goodsInfo.getGoodsId();
//                selectSkuId = 0;
//                goodsDetail.title = goodsInfo.getTitle();
//                goodsDetail.shortDesc = "";
//                goodsDetail.sellPoint = "";
//                goodsDetail.detailUrl = goodsInfo.getDetailUrl();
//                goodsDetail.coverUrl = goodsInfo.getCoverUrl();
//                selectSkuPropName = "";
//                selectSkuPropValue = "";
//                selectPrice = goodsInfo.getSalePrice();
//                return;
//            }
//            {
//                tvSetMeal.setVisibility(View.VISIBLE);
//                flowlayout.setVisibility(View.VISIBLE);
//                isHasSku = true;
//                Set<String> keys = goodsDetail.skuProps.get(0).goodsPropValueList.keySet();
//                values.addAll(new ArrayList<>(keys));
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//            return;
//        }
//        //flowlayout.setMaxSelectCount(1);
//        final TagAdapter<String> tagAdapter = new TagAdapter<String>(values) {
//            @Override
//            public View getView(FlowLayout parent, int position, String s) {
//                TextView tv = (TextView) LayoutInflater.from(activity).inflate(R.layout.tag_item,
//                        flowlayout, false);
//                tv.setText(s);
//                selectSkuPropValue = values.get(position);
//                selectSkuPropName = goodsDetail.skuProps.get(0).goodsPropName;
//                String skuKey = goodsDetail.skuProps.get(0).goodsPropValueList.get(selectSkuPropValue);
//                SkuValue skuValue = goodsDetail.skuValueMap.get(skuKey);
//                if (null == skuValue) {
//                    tv.setBackgroundResource(R.drawable.no_selected_tag);
//                    tv.setTextColor(Color.parseColor("#7d7d7d"));
//                    tv.setClickable(false);
//                    tv.setEnabled(false);
//                }
//                return tv;
//            }
//        };
//        flowlayout.setAdapter(tagAdapter);
//        flowlayout.setOnSelectListener(new TagFlowLayout.OnSelectListener() {
//            @Override
//            public void onSelected(Set<Integer> selectPosSet) {
//                if (null != selectPosSet && selectPosSet.size() != 0) {
//                    int position = selectPosSet.iterator().next();
//                    selectSkuPropValue = values.get(position);
//                    selectSkuPropName = goodsDetail.skuProps.get(0).goodsPropName;
//                    String skuKey = goodsDetail.skuProps.get(0).goodsPropValueList.get(selectSkuPropValue);
//                    SkuValue skuValue = goodsDetail.skuValueMap.get(skuKey);
//                    if (null == skuValue) {
//                        flowlayout.onChanged();
//                    } else {
//                        onTagSelected(position);
//                    }
//                }
//            }
//        });
////        tagAdapter.setSelectedList(1);
////        onTagSelected(0);
//    }
//
//
//    private void onTagSelected(int position) {
//        try {
//            //int position = selectPosSet.iterator().next();
//            selectSkuPropValue = values.get(position);
//            selectSkuPropName = goodsDetail.skuProps.get(0).goodsPropName;
//            String skuKey = goodsDetail.skuProps.get(0).goodsPropValueList.get(selectSkuPropValue);
//            SkuValue skuValue = goodsDetail.skuValueMap.get(skuKey);
//            if (null != skuValue) {
//                selectSkuId = skuValue.skuId;
//                selectPrice = skuValue.price;
//                refreshPriceAndNumber(skuValue.price, skuValue.stock);
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    private List<String> coverList = new ArrayList<>();
//
//    private void initCoverList() {
//        if (TextUtils.isEmpty(goodsDetail.mainPics)) return;
//        coverList.addAll(Arrays.asList(goodsDetail.mainPics.split(Consts.COVER_SPLIT)));
//        LinearLayoutManager layoutManager = new LinearLayoutManager(activity);
//        layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
//        rvCover.setLayoutManager(layoutManager);
//        rvCover.setHasFixedSize(true);
//        final CommonRecyclerAdapter<String> coverAdapter = new CommonRecyclerAdapter<String>(activity,
//                R.layout.cover_item, coverList) {
//            @Override
//            public void onUpdate(BaseAdapterHelper helper, String item, int position) {
//                helper.setImageLoad(new ImageLoadByPicasso())
//                        .setImageUrl(R.id.cover_item_iv, item);
//            }
//        };
//        coverAdapter.setOnItemClickListener(new CommonRecyclerAdapter.OnItemClickListener() {
//            @Override
//            public void onItemClick(RecyclerView.ViewHolder viewHolder, View view, int position) {
//                if (!DataUtil.isEmpty(coverList)) {
//                    PicassoUtil.load(activity, coverList.get(position), ivCover);
//                }
//            }
//        });
//        rvCover.setAdapter(coverAdapter);
//    }
//
//    private void getDetailsInfo() {
//        ActionHelp.qryGoodsBase(activity, goodsInfo.getGoodsId(),
//                new ObjectCallback<GoodsDetail>() {
//                    HashMap<String, SkuValue> skuValueMap = new HashMap<>();
//                    List<SkuProp> skuProps = new ArrayList<>();
//
//                    @Override
//                    public String filter(String json) {
//                        try {
//                            Logger.d("获取商品详情成功:" + json);
//                            JSONArray arr = new JSONObject(json).getJSONArray("prop");
//                            for (int i = 0; i < arr.length(); i++) {
//                                final JSONObject item = arr.getJSONObject(i);
//                                SkuProp skuProp = new SkuProp();
//                                skuProp.goodsPropName = item.getString("goodsPropName");
//                                skuProp.isSku = item.getBoolean("isSku");
//                                HashMap<String, String> map = new HashMap<>();
//                                final JSONArray itemArr = item.getJSONArray("goodsPropValueList");
//                                for (int j = 0; j < itemArr.length(); j++) {
//                                    final JSONObject itemObj = itemArr.getJSONObject(j);
//                                    for (Iterator<String> it = itemObj.keys(); it.hasNext(); ) {
//                                        String key = it.next();
//                                        map.put(itemObj.getString(key), key);
//                                    }
//                                }
//                                skuProp.goodsPropValueList = map;
//                                skuProps.add(skuProp);
//                            }
//                            JSONObject obj = new JSONObject(json).getJSONObject("skuMap");
//                            for (Iterator<String> it = obj.keys(); it.hasNext(); ) {
//                                String key = it.next();
//                                final SkuValue skuValue = JSON.parseObject(obj.getString(key), SkuValue.class);
//                                skuValueMap.put(key, skuValue);
//                            }
//
//                        } catch (Exception e) {
//                            e.printStackTrace();
//                            Logger.e("解析sku出错:" + json);
//                        }
//                        return super.filter(json);
//                    }
//
//                    @Override
//                    public void onSuccess(GoodsDetail response) {
//                        if (null != response) {
//                            goodsDetail = response;
//                            goodsDetail.skuProps = skuProps;
//                            goodsDetail.skuValueMap = skuValueMap;
//                            if (response.totalAmount > 0) {
//                                isHasStock = true;
//                            } else {
//                                isHasStock = false;
//                                quantityView.setMaxQuantity(1);
//                            }
//                            Logger.d("获取商品详情成功:");
//                            refreshPriceAndNumber(response.salePrice, response.totalAmount);
//                            initCoverList();
//                            initSkuProp();
//                        } else {
//                            Logger.d("获取商品详情解析????????");
//                        }
//                    }
//
//                    @Override
//                    public Class<GoodsDetail> getType() {
//                        return GoodsDetail.class;
//                    }
//
//                    @Override
//                    public void onError(int code, String errorMessage) {
//                        super.onError(code, errorMessage);
//                        Logger.e("获取商品详情失败:" + code + "," + errorMessage);
//                    }
//                }
//        );
//    }
//
//    private void pay() {
//        if (isHasStock) {
//            if (isHasSku) {
//                if (flowlayout.getSelectedList() == null || flowlayout.getSelectedList().size() == 0) {
//                    Utils.showToast(activity, "请选择商品属性");
//                    return;
//                }
//            }
//            ShoppingCartItem shoppingCartItem = new ShoppingCartItem(null, goodsDetail.goodsId,
//                    selectSkuId, goodsDetail.title, goodsDetail.shortDesc, goodsDetail.sellPoint,
//                    goodsDetail.detailUrl, goodsDetail.coverUrl, selectSkuPropName, selectSkuPropValue,
//                    selectPrice, number);
//            ArrayList<ShoppingCartItem> items = new ArrayList<>();
//            items.add(shoppingCartItem);
//            GoodsPayActivity.start(activity, items, false);
//        } else {
//            Utils.showToast(activity, "没有库存了");
//        }
//    }
//
//    private void addShoppingCart() {
//        if (isHasStock) {
//            if (isHasSku) {
//                if (flowlayout.getSelectedList() == null || flowlayout.getSelectedList().size() == 0) {
//                    Utils.showToast(activity, "请选择商品属性");
//                    return;
//                }
//            }
//            ShoppingCartItem shoppingCartItem = new ShoppingCartItem(null, goodsDetail.goodsId,
//                    selectSkuId, goodsDetail.title, goodsDetail.shortDesc, goodsDetail.sellPoint,
//                    goodsDetail.detailUrl, goodsDetail.coverUrl, selectSkuPropName, selectSkuPropValue,
//                    selectPrice, number);
//            ShoppingCartHelper helper = ShoppingCartHelper.getInstance(activity);
//            long id = helper.exists(shoppingCartItem);
//            if (id > 0) {
//                shoppingCartItem.setId(id);
//                helper.update(shoppingCartItem);
//            } else {
//                helper.add(shoppingCartItem);
//            }
//            Utils.showToast(activity, "添加成功");
//        } else {
//            Utils.showToast(activity, "没有库存了");
//        }
//    }
//
//    @Subscriber(tag = PayUtil.PAY_SUCCESS, mode = ThreadMode.MAIN)
//    public void paySuccess(String params) {
//        finish();
//    }
//
//    @Override
//    protected void onDestroy() {
//        OkHttpUtils.cancelTag(this);
//        super.onDestroy();
//    }
//}
